/* 
 * File:   CalcularCM.h
 * Author: User007
 *
 * Created on August 12, 2011, 8:31 PM
 */

#ifndef CALCULARCM_H
#define	CALCULARCM_H
#include <cv.h>
#include "Pixel.h"
#include "EstruturaEquivalente.h"
#include "ImgMatriz.h"
#include "CriadorRegiaoLabel.h"
#include "Posicao.h"
#include "ListaLigada_CM.h"

class CalcularCM {
public:
    CalcularCM();
    CalcularCM(const CalcularCM& orig);
    virtual ~CalcularCM();
    void ListarCM(IplImage* img);
    void NextPass(IplImage* img);
    Pixel **matrizRegioes;
    EstruturaEquivalente estruturaEQ;
    ImgMatriz imgm;
    CriadorRegiaoLabel cr;
    int getPosicoesX(int label, int tamanho, IplImage* img);
    int getPosicoesY(int label, int tamanho, IplImage* img);
    void CriaImg(IplImage *img);
    void MarcarCM(IplImage *img);
    bool existeCM(int label, IplImage* img);
    int tamanhoVetorCM();
    Pixel **LoadMatrizRegioes(IplImage* img);
    void addLabelEQ(int label, int pai);
    int GetPai(int label);
    ListaLigada_CM listaCentroMassa;
    int width;
    int height;
    
private:

};

#endif	/* CALCULARCM_H */

